草庐IT

c - 在 C 中执行 shellcode (visual studio 2017

全部标签

c# - 从 C# 以管理员身份执行 PowerShell

我有以下C#代码using(RunspaceInvokeinvoker=newRunspaceInvoke()){invoker.Invoke("Set-ExecutionPolicyUnrestricted");//...}这给了我异常(exception)Accesstotheregistrykey'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell'isdenied.根据this,解决方案是以管理员身份启动PowerShell。通常,这可以通过右键单击PowerShell

c# - 有没有办法在正则表达式中执行动态替换?

有没有办法在C#4.0中使用匹配中包含的文本的函数进行正则表达式替换?在php中有这样的东西:reg_replace('helloworldyay','(?=')\s(?=')',randomfunction('$0'));它为每个匹配项提供独立的结果,并在找到每个匹配项的地方替换它。 最佳答案 参见Regex.Replace具有MatchEvaluator重载的方法。MatchEvaluator是一种您可以指定的方法,用于处理每个单独的匹配项并返回应用作该匹配项的替换文本的内容。例如,这个...Thecatjumpedoverth

c# - 重载的 false 运算符什么时候被执行,它有什么用?

我一直在寻找实际执行重载的false运算符的实际工作代码。Thisquestion(What'sthefalseoperatorinC#goodfor?)有点相同,但接受的答案链接到返回404错误的url。我也看过Howdoesoperatoroverloadingoftrueandfalsework?以及其他一些问题。我在几乎所有答案中发现的是,false仅在您使用短路和类似x&&y时才会执行。这被评估为T.false(x)?x:T.&(x,y).好的,所以我有以下代码。struct包含一个int并且如果int大于零则认为它自己为真。:publicstructMyStruct{pri

C# Linq - 延迟执行

如果我建立一个查询说:(查询是使用System.Xml.Linq中的XDocument类构建的)varelements=fromeincalendarDocument.Root.Elements("elementName")selecte;然后我多次调用elements.Last()。每次调用都会返回最新的Last()元素吗?例如,如果我这样做elements.Last().AddAfterSelf(newXElement("elementName","someValue1"));elements.Last().AddAfterSelf(newXElement("elementName

c# - 如何在 VS 2017 中创建具有最小依赖性的 .NET Standard NuGet 包?

我目前正在使用VisualStudio2017迁移库项目以支持.NETStandard1.1。我希望将该项目作为单个NuGet包发布,该包可以同时针对.NETFramework4.5+和.NETCore、UWP等。但是,当我尝试在.NETFramework项目中安装生成的包时,会生成一个巨大的包依赖项列表,其中包含.NET标准中定义的所有包(见下文):我知道这些都是定义为.NETStandard1.1规范一部分的程序集。然而,我的特定项目实际上只需要其中的一小部分,这个依赖列表对于在他们的项目中安装该包的任何人来说都会非常困惑。我试图按照similarquestion的答案进行操作其中

c# - 条件为假时执行的 If 语句 True block

我优化了一个扩展方法来比较两个流的相等性(字节对字节)——知道这是一个热门方法,我尝试尽可能地优化它(流可以达到数兆字节的长度)。我基本上想出了以下方法:[StructLayout(LayoutKind.Explicit)]structConverter{[FieldOffset(0)]publicByte[]Byte;[FieldOffset(0)]publicUInt64[]UInt64;}//////Comparestwostreamsforbyte-by-byteequality.//////Thetargetstream.///Thestreamtocomparethetar

c# - 当所述线程正在执行 Console.ReadLine 时,如何中止 .NET 中的另一个线程?

这个问题在这里已经有了答案:HowtointerruptConsole.ReadLine(11个答案)关闭3年前。我的控制台应用程序正在执行一个完全专注于用户界面的线程,它花费大量时间阻塞在Console.ReadLine()上(这个调用在内部深处花费时间Windows,在.NET框架的控制之外)。我需要中止这个线程。但是,以下代码似乎不起作用:this.UserInterfaceThread.Abort();有什么想法吗?Thread.Interrupt()有什么用吗?更新正如HansPassant指出的那样:TheCLRimposesrathersanerulesonthestat

c# - 是否可以确定 IEnumerable<T> 是否已延迟执行挂起?

我有一个接受Enumerable的函数。我需要确保对枚举器进行评估,但如果它已在列表或其他一些“卡住”集合中准备就绪,我宁愿不创建它的副本(例如通过ToList()或ToArray())。我所说的“冰雪奇缘”是指已经建立了项目集的集合,例如List、Array、FsharpSet、Collection等,而不是像Select()和where()这样的linq东西。是否可以创建一个函数“ForceEvaluation”来确定可枚举对象是否已延迟执行挂起,然后评估可枚举对象?publicvoidProcess(IEnumerablefoos){IEnumerableevalutedFoos

c# - 为什么 Task.ContinueWith 在此单元测试中执行失败?

我遇到了一个单元测试失败的问题,因为TPL任务从未执行过它的ContinueWith(x,TaskScheduler.FromCurrentSynchronizationContext())。问题原来是因为在任务启动之前不小心创建了一个WinformsUI控件。这是一个重现它的例子。您会看到,如果您按原样运行测试,它就会通过。如果您在未注释Form行的情况下运行测试,它将失败。[TestClass]publicclassUnitTest1{[TestMethod]publicvoidTestMethod1(){//CreatenewsynccontextforunittestSynch

c# - 相同代码块执行的持续时间如此不同的原因是什么?

代码:internalclassProgram{privatestaticvoidMain(string[]args){constintiterCount=999999999;varsum1=0;varsum2=0;using(newDis()){varsw=DateTime.Now;for(vari=0;i两个相同用途的相同block。输出:205165798500:00:00.3690996205165798500:00:02.2640266第二个区block需要2.2秒!但是如果为了摆脱使用,持续时间变得相同(~0.3s,就像第一个一样)。我已经尝试使用.netFramework